import 'package:flutter/material.dart';
import 'package:flutter_hsh/utils/k_log.dart';
import 'package:get/get.dart';

/// 节气信息模型
class JieqiInfo {
  final String name;
  final String date;
  final String feature;
  final String farming;
  final String custom;

  JieqiInfo({
    required this.name,
    required this.date,
    required this.feature,
    required this.farming,
    required this.custom,
  });
}

/// 季节详情模型
class SeasonDetail {
  final String name;
  final Color color;
  final String iconPath;
  final String description;
  final List<JieqiInfo> jieqiList;

  SeasonDetail({
    required this.name,
    required this.color,
    required this.iconPath,
    required this.description,
    required this.jieqiList,
  });
}

/// 季节详情页面控制器
class SeasonDetailLogic extends GetxController {
  // 滚动控制器
  final ScrollController scrollController = ScrollController();
  
  // 响应式变量
  final RxBool isLoading = false.obs;
  final RxString seasonName = ''.obs;
  final Rx<SeasonDetail> seasonDetail = SeasonDetail(
    name: '',
    color: Colors.blue,
    iconPath: '',
    description: '',
    jieqiList: [],
  ).obs;

  @override
  void onInit() {
    super.onInit();
    // 初始化数据
    _loadSeasonData();
  }

  @override
  void onReady() {
    super.onReady();
    // 页面准备完成后的操作
    KLog.d('SeasonDetailLogic ready');
  }

  @override
  void onClose() {
    // 释放资源
    scrollController.dispose();
    super.onClose();
  }

  /// 加载季节数据
  void _loadSeasonData() {
    isLoading.value = true;
    
    // 模拟数据加载
    Future.delayed(const Duration(milliseconds: 500), () {
      // 从路由参数获取季节名称
      final seasonName = Get.arguments?['seasonName'] ?? '春季';
      this.seasonName.value = seasonName;
      
      // 根据季节名称加载数据
      seasonDetail.value = _getSeasonDetail(seasonName);
      
      isLoading.value = false;
    });
  }

  /// 获取季节详情数据
  SeasonDetail _getSeasonDetail(String seasonName) {
    switch (seasonName) {
      case '春季':
        return SeasonDetail(
          name: '春季',
          color: const Color(0xFF00A651),
          iconPath: 'assets/images/spring_icon.svg',
          description: '春季是万物复苏的季节，气温逐渐回暖，植物开始生长。春季包含立春、雨水、惊蛰、春分、清明、谷雨六个节气。',
          jieqiList: [
            JieqiInfo(
              name: '立春',
              date: '2月3日-2月5日',
              feature: '春季开始，万物复苏',
              farming: '准备春耕，播种早春作物',
              custom: '吃春饼、迎春祭祀',
            ),
            JieqiInfo(
              name: '雨水',
              date: '2月18日-2月20日',
              feature: '降雨增多，冰雪融化',
              farming: '整地施肥，准备播种',
              custom: '祭拜雨神，祈求风调雨顺',
            ),
            JieqiInfo(
              name: '惊蛰',
              date: '3月5日-3月7日',
              feature: '春雷始鸣，惊醒蛰伏的昆虫',
              farming: '春耕开始，播种春作物',
              custom: '祭白虎，驱五虫',
            ),
            JieqiInfo(
              name: '春分',
              date: '3月20日-3月22日',
              feature: '昼夜平分，阴阳相半',
              farming: '春种正忙，加强田间管理',
              custom: '竖蛋，放风筝',
            ),
            JieqiInfo(
              name: '清明',
              date: '4月4日-4月6日',
              feature: '气清景明，万物皆显',
              farming: '播种移栽，管理春田',
              custom: '扫墓祭祖，踏青郊游',
            ),
            JieqiInfo(
              name: '谷雨',
              date: '4月19日-4月21日',
              feature: '雨生百谷，利于农作物生长',
              farming: '种植水稻，管理春作物',
              custom: '采茶，饮谷雨茶',
            ),
          ],
        );
      
      case '夏季':
        return SeasonDetail(
          name: '夏季',
          color: const Color(0xFF00ABD4),
          iconPath: 'assets/images/summer_icon.svg',
          description: '夏季是生长旺盛的季节，气温高，雨水充沛。夏季包含立夏、小满、芒种、夏至、小暑、大暑六个节气。',
          jieqiList: [
            JieqiInfo(
              name: '立夏',
              date: '5月5日-5月7日',
              feature: '夏季开始，气温升高',
              farming: '种植夏季作物，加强田间管理',
              custom: '吃立夏饭，称体重',
            ),
            JieqiInfo(
              name: '小满',
              date: '5月20日-5月22日',
              feature: '麦类作物籽粒饱满',
              farming: '防治病虫害，适时灌溉',
              custom: '祭拜蚕神，祈求蚕业丰收',
            ),
            JieqiInfo(
              name: '芒种',
              date: '6月5日-6月7日',
              feature: '有芒作物成熟',
              farming: '收获小麦，种植水稻',
              custom: '晒书，祭神祈雨',
            ),
            JieqiInfo(
              name: '夏至',
              date: '6月21日-6月22日',
              feature: '北半球一年中白昼最长',
              farming: '田间管理，防治病虫害',
              custom: '吃面，饮夏至茶',
            ),
            JieqiInfo(
              name: '小暑',
              date: '7月6日-7月8日',
              feature: '天气开始炎热',
              farming: '田间管理，防旱抗涝',
              custom: '吃冷饮，避暑纳凉',
            ),
            JieqiInfo(
              name: '大暑',
              date: '7月22日-7月24日',
              feature: '一年中最热的时期',
              farming: '水稻抽穗扬花，加强管理',
              custom: '吃姜，喝绿豆汤',
            ),
          ],
        );
      
      case '秋季':
        return SeasonDetail(
          name: '秋季',
          color: const Color(0xFFE4007F),
          iconPath: 'assets/images/autumn_icon.svg',
          description: '秋季是收获的季节，气温逐渐下降，天气凉爽。秋季包含立秋、处暑、白露、秋分、寒露、霜降六个节气。',
          jieqiList: [
            JieqiInfo(
              name: '立秋',
              date: '8月7日-8月9日',
              feature: '秋季开始，天气转凉',
              farming: '收获早稻，准备秋播',
              custom: '贴秋膘，吃秋桃',
            ),
            JieqiInfo(
              name: '处暑',
              date: '8月22日-8月24日',
              feature: '炎热天气即将结束',
              farming: '收获中稻，防治病虫害',
              custom: '放河灯，祭拜祖先',
            ),
            JieqiInfo(
              name: '白露',
              date: '9月7日-9月9日',
              feature: '露水增多，气温渐凉',
              farming: '收获早稻，种植秋作物',
              custom: '饮白露茶，吃芝麻',
            ),
            JieqiInfo(
              name: '秋分',
              date: '9月22日-9月24日',
              feature: '昼夜平分，阴阳相半',
              farming: '收获农作物，准备冬种',
              custom: '祭月，吃秋果',
            ),
            JieqiInfo(
              name: '寒露',
              date: '10月8日-10月9日',
              feature: '气温下降，露水带寒意',
              farming: '收获晚稻，种植冬小麦',
              custom: '赏菊，饮菊花酒',
            ),
            JieqiInfo(
              name: '霜降',
              date: '10月23日-10月24日',
              feature: '开始降霜，气温骤降',
              farming: '收获秋作物，入冬准备',
              custom: '吃柿子，进补养生',
            ),
          ],
        );
      
      case '冬季':
        return SeasonDetail(
          name: '冬季',
          color: const Color(0xFFFF6600),
          iconPath: 'assets/images/winter_icon.svg',
          description: '冬季是收藏的季节，气温低，天气寒冷。冬季包含立冬、小雪、大雪、冬至、小寒、大寒六个节气。',
          jieqiList: [
            JieqiInfo(
              name: '立冬',
              date: '11月7日-11月8日',
              feature: '冬季开始，天气寒冷',
              farming: '收获晚稻，储藏粮食',
              custom: '吃饺子，补冬养生',
            ),
            JieqiInfo(
              name: '小雪',
              date: '11月22日-11月23日',
              feature: '开始降雪，但雪量不大',
              farming: '农田休整，准备越冬',
              custom: '腌菜储粮，准备过冬',
            ),
            JieqiInfo(
              name: '大雪',
              date: '12月6日-12月8日',
              feature: '降雪量增多，天气寒冷',
              farming: '农闲时节，修整农具',
              custom: '吃羊肉，饮热酒',
            ),
            JieqiInfo(
              name: '冬至',
              date: '12月21日-12月23日',
              feature: '北半球一年中白昼最短',
              farming: '农闲时节，室内劳作',
              custom: '吃饺子，贴福字',
            ),
            JieqiInfo(
              name: '小寒',
              date: '1月5日-1月7日',
              feature: '寒冷开始加剧',
              farming: '农闲时节，修整农具',
              custom: '吃糯米饭，腌腊肉',
            ),
            JieqiInfo(
              name: '大寒',
              date: '1月20日-1月21日',
              feature: '一年中最冷的时期',
              farming: '农闲时节，准备春耕',
              custom: '喝姜汤，吃年糕',
            ),
          ],
        );
      
      default:
        return SeasonDetail(
          name: '春季',
          color: const Color(0xFF00A651),
          iconPath: 'assets/images/spring_icon.svg',
          description: '默认季节数据',
          jieqiList: [],
        );
    }
  }

  /// 刷新数据
  void refreshData() {
    _loadSeasonData();
  }
}